package playingWithWheels;

import java.io.PrintStream;
import java.util.Scanner;
import java.util.Stack;

/**
 * Playing With Wheelss problem UVA 10067
 * @author Jonas Jeske www.inf.ufrgs.br/~jjeske
 *
 */
public class Main {
	
	public static void main(String[] args){
		Main playingWithWheels = new Main();
		playingWithWheels.run();
	}
	
//	public static void class jonas(){
//		
//	}
	
	public static int MAX = 10000;
	
	private int inicial;
	private int objetivo;
	
	private boolean[] proibidos;
	private boolean[] visitados;
	
	private Stack pilha;

	/*
	 * input
2
8 0 5 6
6 5 0 8
5
8 0 5 7
8 0 4 7
5 5 0 8
7 5 0 8
6 4 0 8

0 0 0 0
5 3 1 7
8
0 0 0 1
0 0 0 9
0 0 1 0
0 0 9 0
0 1 0 0
0 9 0 0
1 0 0 0
9 0 0 0
	 */
	private void run(){
		Scanner entrada = new Scanner(System.in);
		PrintStream saida = new PrintStream(System.out);
		int testCases;
		int forbiddenCases;
		
		testCases = entrada.nextInt();
		for(int c = 0; c < testCases; c++){
			//pega incial
			inicial = 0;
			for(int i=0; i<4; i++){
				inicial = (inicial*10) + entrada.nextInt();				
			}		
			//pega objetivo
			objetivo = 0;
			for(int i=0; i<4; i++){
				objetivo = (objetivo*10) + entrada.nextInt();				
			}
			//System.out.println("inicial: " + inicial + " - objetivo: " + objetivo);
			
			forbiddenCases = entrada.nextInt();
			proibidos = new boolean[MAX];
			for(int i=0; i<MAX; i++){
				proibidos[i] = false;
			}
			visitados = new boolean[MAX];
			for(int i=0; i<MAX; i++){
				visitados[i] = false;
			} 
			
			for(int f=0; f < forbiddenCases; f++){
				int aux = 0;
				for(int i=0; i<4; i++){
					//get eache forbidden case
					aux = (aux*10) + entrada.nextInt();
					proibidos[aux] = true;				
				}
			}
			
			pilha = new Stack();
			//faz a busca por profundidade; BFS
			//pilha.add()	
		}
		
		
	}

}